Method and apparatus for modifying the play time of digital audio tracks

ABSTRACT

A method an apparatus for modifying the play time of digital audio tracks. For each data block of samples taken from a plurality of such blocks comprising an audio stream or track, the original block data plus a time shifted copy of the block data are superimposed, in a manner dependent on either desired expansion or desired contraction of play time, to create an overlap region. The overlap region is selected at a position of best match as resulting from a normalized correlation over the overlap, the super position being weighted by a linear cross-fading function. All signal crossovers (signal transitions of opposite signal sign) in a block are located. A position at which to superimpose a copy of the data block with the data block, and the length of the data block, are determined based upon the location of said crossovers within a given data block. Additionally, as the data blocks are processed, any companding overage (companding in excess of a selected nominal companding amount) or underage (companding less than a selected nominal companding amount) are monitored and necessary adjustments are made so that the results in a final audio track length are very precise. Accordingly, the play time of an audio track or stream is either expanded or compressed in time while both preserving its original pitch and reproducing the sound at a very high quality level basically free of noise, distortion, and audible artifacts.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates in general to a method and apparatus forperforming time-scale modification on the play time of digital audiotracks. In particular, the present invention relates to an improvedmethod and apparatus, for time-scale modification, of a type whichutilizes cross-faded, overlapped audio signals.

2. Description of the Related Art

Time-scale modification, also known as time companding either compressesor expands the play time of an audio track without changing the pitchwhen the track is played back at the same sample rate per second as theoriginal recording. Although the term audio track is used, this alsomeans an audio stream, since audio data need not be stored, but can beprocessed in real time. Evidently, with rate change, the playback of arecording that is played at a faster rate will have higher pitch and theplayback of a recording that is played at a slower rate will have lowerpitch. Pitch change is audibly objectionable, hence the many efforts totime compand without changing pitch.

Many attempts have been made to perfect time companding on the play timeof audio tracks. Many of these previous attempts to time compand havecentered the work on speech. This is so because one of the applicationsfor time companding is to use expanded audio tracks to assist slowlearners. Another speech application utilizing time companding is thespeed-up of dictation playback.

In the world of commercial broadcasting, however, time companding mustencompass both speech and music or any mixture of the two. Applicationsrange from the tailoring of audio track lengths to match time slots, toaudio editing or to deliberate tempo alteration of musical recordings.

Previous attempts to time compand fall into two broad classes: analogand digital. U.S. Pat. No. 4,406,001 describes an analog method thatbreaks up audio signals into frequency bands and recombines them withsynchronous variable time delays to achieve pitch correction. The moderntrend in audio is digital methods, however, and U.S. Pat. Nos.4,022,974, 4,209,844, 4,435,832, and 4,864,620 disclose digitaltechniques to accomplish time companding. The present invention alsoprovides a method and apparatus for digital time companding, althoughrepresenting a major improvement over previous work. Of the abovepatents, all but U.S. Pat. No. 4,864,620 relate only to synthesized orparametric speech, which is substantially unrelated to the presentinvention.

Perhaps the most promising digital method of time companding utilizesthe concept of cross-faded, overlapped audio signals, the overlapsoccurring at places satisfying some best match condition. The researchpaper by Roucous and Wilgus, "High Quality Time-Scale Modification forSpeech", ICASSP 85, Proceedings of the IEEE International Conference ofAcoustics, Speech, and Signal Processing, pp 493-6, Volume 2, 1985introduced cross-faded overlap processing utilizing multiplicativecross-correlation for best matching and U.S. Pat. No. 4,864,620 offeredthe improvement of cross-faded overlaps with a computationally superioraverage magnitude difference function.

Both of these methods invoke a search for a best match via a continuoussliding window calculation over a variable search length. The presentinvention also utilizes cross-faded overlaps, but with best matchesfound by a radically new concept that does not use the continuoussliding window search technique.

A recent time companding patent, U.S. Pat. No. 5,175,769, is also basedon cross-faded overlaps and utilizes a search method for best match thatis totally different from the inventive method of this patent. In fact,the invention disclosed in U.S. Pat. No. 5,175,769 utilizes overlaps offixed length, a prescription that will definitely fail to produce highquality audio reproduction on certain types of audio that are readilyreproduced at high quality by the current invention method.

Previous time companding methods and apparatus have not received widecommercial acceptance, presumably because their audio reproductionquality is not high enough in general to satisfy the very demandingcommercial broadcast marketplace. The prior methods introduce into thecompanded audio varying amounts of noise, distortion, and audibleartifacts, especially for large amounts of time companding. The presentinvention overcomes the drawbacks of the prior art with a digital method(and apparatus) of time companding based on cross-faded overlaps that isbasically free of noise, distortion, and audio artifacts over a limitedrange of time companding roughly less or equal to a 20% length change inplay time. This limited range is sufficient to serve much of thecommercial broadcast marketplace in applications of time slot matchingand audio editing. Audio experts have listened to our companding resultsand judged it quite superior to the results of previous methods to whichthey have listened.

SUMMARY OF THE INVENTION

An object of the present invention is to provide a method and apparatusfor performing very high quality time companding on the play time ofdigital audio.

Another object of the present invention is to provide a method andapparatus for modifying the play time of digital audio, which method andapparatus are easy to implement and use.

A further object of the present invention is to provide a method andapparatus, for modifying the play time of digital audio, which preservesthe pitch of the original audio and reproduces the audio, at a modifiedplay time, basically free of noise, distortion, and audible artifacts.

It is a further object of the present invention to superimpose a blockof audio data with a copy of at least a portion of itself, in a mannerdependent upon a computed normalized correlation, to thereby create anoverlap region.

It is a principal object of the present invention to locate in an audiosignal, comprised of a stream of signal representations, locations inthe stream of signal representations at which polarity changes exist,and to utilize the positions in overlapping blocks of the signalrepresentations.

These and other objects are achieved by method and apparatus forprocessing time domain audio signal data such that the play time of theaudio track can be either expanded or contracted in time while bothpreserving the original pitch and reproducing the sound at a very highquality level basically free of noise, distortion, and audibleartifacts.

In the present invention, blocks of audio data are processedsequentially. The length of the blocks can be variable from block toblock, but a preferred embodiment utilizes fixed length blocks. For eachblock, of preferred length 8192 samples, the original block data plus atime shifted copy of the block data are superimposed, in a mannerdependent on either desired expansion or desired contraction of playtime, to create an overlap region. The overlap region is selected at aposition of best match as resulting from a normalized correlation overthe overlap, the superposition being weighted by a linear cross fadingfunction.

A primary principle of the present invention is the method of (andapparatus for) selecting a best match position for the overlap. Inaccordance with the principles of the present invention, the nominallength of the overlap is the desired companding percentage of the fixedblock length. The companding percentage is the ratio of desired playtime of the audio track to the original play time of the audio track.Initially, all crossovers (signal transitions of opposite signal sign)in a block are located. For each crossover as a potential startinglocation for the overlap, a normalized difference correlation iscomputed for both the nominal overlap length and a trial overlap length.The trial overlap length is an integer multiple of full-period crossoverspacings that first exceeds the nominal length.

Specifically, trial overlap lengths are determined by summing what aretermed herein as full period crossovers, wherein the summation stopswhen the sum equals or first exceeds the nominal length. Full periodcrossovers, as discussed below, are defined by the length betweensuccessive crossovers having the same signal transition polarity ("+ to-" or "- to +" in signal amplitude). If the block contains nocrossovers, the starting location of the overlap (nominal length) istaken at block center. If the block does contain crossovers, for eachtrial overlap that fits within the current data block, a normalizedcorrelation is computed. In the first of two correlation passes, themaximum result will be either a nominal length overlap or an integercrossover period multiple overlap with the additional constraint thatthe crossovers between full-period crossovers satisfied a pure tonecondition of central location to within 1/8 of the crossover period(crossover separation). In the second pass we try integer multiples ofcrossover periods that do not satisfy the pure tone condition, calledchord overlaps, since they perform outstandingly well on sustainedmusical chords. Pure tone and chord overlaps are distinguished only bythe preferential selection of pure tone overlaps first, because theyexhibit the very highest correlations.

The overlap is taken at the crossover start location for which thecorrelation was greatest positive value <=1, otherwise the nominallength is systematically reduced and retried until either a fit occursor the block is passed on uncompanded and the deficit made up later. Asthe blocks are processed, any companding overage is accumulated until itis large enough to pass one or more blocks with either reduced or zerocompanding to cancel the overage and re-initialize the overage counter.This results in a final audio track length very near to the target timecompanded length. Changing the balance of right on, over (overage orexcess companding), or under (underage or less than nominal companding)amounts of companding, occurs when proceeding from block to block.

Evidently, the above best matching method involves only a subset of aprior art-type continuous window exhaustive search procedure andproceeds quickly, thereby being readily adaptable to real timeapplications. Note also, however, that a sliding window exhaustivesearch would not result in the same correlations as the presentinvention, because the lengths of the optimum overlaps depend on thecrossover locations in accordance with the principles of the presentinvention.

An embodiment of the present invention in hardware can be realized byprogrammable digital signal processing components. The digitalcomponents utilized are well-known to those skilled in the digital audioart. The application of such devices to the present invention isnevertheless not apparent from the devices.

The method according to the present invention of best matching ofoverlap positions is responsible for maintaining a very high quality ofaudio reproduction. The present invention produces desirable resultsbecause pitch periods (not always the same as crossover periods) alwaysstart on crossovers and the choice of nominal length, pure tone, orchord overlaps guarantees a high correlation and greatly minimizesdistortion and audio artifacts in both speech and music. Notice thatunlike some of the prior companding art, the present invention has noexplicit pitch detection step.

The present invention is best understood in detail by reference to thefollowing detailed description in conjunction with the accompanyingdrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The objects and features of the invention noted above are explained inmore detail with reference to the drawings, in which like referencenumerals denote like elements, and in which:

FIG. 1 is a flow chart of the time companding method of the presentinvention;

FIG. 2 is a diagram illustrating the cross-faded overlaps of the presentinvention; and

FIG. 3 is a block diagram of a device which operates in accordance withthe present invention.

DETAILED DESCRIPTION OF THE INVENTION

With reference initially to FIG. 1, a flowchart, denoted generally bythe reference numeral 10, illustrates the method of the presentinvention, which is carried out by software. As discussed, the presentinvention finds the best overlap match locations within data blocks whenoperating to expand or contract the play time of selected audio. It willbe appreciated by those skilled in the art that conventional digitalrecording systems utilize post-code modulation such that signalrepresentations, namely integer samples, of the digitally recorded audiocomprise values within a given range. For instance, where conventional16-bit audio is utilized, the values, corresponding to voltages, rangefrom -32,767 to +32,768. Electronic hardware utilized in recording andbroadcasting studios reproduce sound in accordance with a stream ofinteger values within this range.

In accordance with the principles of the present invention, the playtime of audio is selectively altered by dividing an audio stream (e.g.,a data stream) into blocks, and superimposing a copy of at least aportion of each block upon itself at a computed matching location. Inaccordance with further and primary principles of the present invention,selection of the overlap matching location for each data block isdetermined by utilizing what are referred to herein as crossovers in thedata stream. Particularly, a crossover occurs where successive integersin the data stream change signs (e.g., from "+" to "-" or from "-" to"+").

With particular reference to FIG. 1, upon initiating the presentinvention to compand selected audio, a first data block is selected andinput into a buffer. Preferably, the data blocks are fixed in length,with the length preferably being within the range of 4096-8192 samples.In accordance with the principles of the present invention, each datablock is preferably 8192 samples, because this length has been found tobest eliminate barely audible artifacts. With a block (buffer) length of8192 samples, the nominal overlap length for the companding range of5%-20% is approximately 12 milliseconds to 48 milliseconds at afrequency of 32,000 Hz. In this companding range, details of the overlapcrossfading are inaudible. If the block size were substantially smaller,too few crossovers may occur within a block at low frequencies. Althougha block length of 8192 samples is generally preferred, a block length of4096 samples is preferred for AM broadcasting with a frequency of 16,000Hz, to avoid excessive overlap lengths.

Once a block is obtained and input into a buffer, as denoted generallyby the reference numeral 12, the present invention locates (and storesin memory) all signal crossovers (signal sign changes) within thecurrent data block, as denoted generally by reference numeral 14. Themanner in which signal crossovers are located is not critical. Forinstance, hardware may be utilized to read the values of each integer tothereby determine crossover locations. Preferably, however, successiveintegers within the block are multiplied. Where the resulting product iszero or a negative value, a crossover has occurred.

Once all signal crossovers within a current data block are located andstored in memory at step 14, the nominal overlap length is computed atstep 16. As discussed, the nominal overlap length is equal to thedesired companding percentage multiplied by the length of the currentdata block. The desired companding percentage is the ratio of thedesired play time of the original audio to the actual play time of theoriginal audio.

As indicated at step 18 of flow chart 10 of the present invention, it isdetermined whether crossovers exist. If no crossovers exist, the lengthof the overlap initially used is the nominal length and the location atwhich the overlap is matched (e.g., superimposed) with the original datablock may be arbitrarily selected. As indicated at step 20, the locationof the overlap is selected at the center of the block.

If, at step 18, crossovers are found to exist, the logic of the presentinvention determines at step 22 whether a prior underage exists. Inother words, at step 22, it is determined whether a previous block wasoutput having companding less than nominal companding.

If, at step 22, a previous underage is found, the computed nominallength is increased by the underage at step 24. Once the nominal overlaplength is increased at step 24, or, alternatively, if no prior underagewas found at step 22, the logic of the present invention proceeds tostep 26, generally referenced as "FIRST PASS". At the FIRST PASS of step26, a number of things occur. At the FIRST PASS step, a normalizedcorrelation is computed for different trial assumptions. Initially,however, the present invention at step 26 starts at each crossover andmakes a pass along the block, keeping track of the additive length ofthe full period crossovers. Full period crossovers are defined bysuccessive crossovers having the same signal transition polarity, be it+/- or -/+. The concept of full period crossovers is best illustrated bya sinusoidal waveform which crosses over a horizontal axis in a firstdirection at a first point, in a second direction (opposite from thefirst direction) at a second point, and again in the first direction ata third point. A full period is defined as that (time or length) whichis between the first and third points. This same concept is meant hereinby full period crossovers

In accordance with the principles of the present invention, the lengthsof full period crossovers from an initial crossover are summed, stoppingwhen the additive length first equals or exceeds the nominal length. Itwill be readily appreciated that the present method step of summing fullperiod crossovers includes comparing the sum with the nominal lengtheach time a full period crossover is added to the sum. This process isrepeated during the FIRST PASS step 26 utilizing each crossover as theinitial crossover. Each sum determined in a block serves as a trialassumption for computing a normalized correlation. Accordingly, thepresent invention searches over the full period crossovers, beginning ateach crossover, and stops once the sum of the full period crossovers hasequalled or just surpasses the nominal length. Particularly, for eachcrossover within the array of crossover starting locations, this processoccurs.

An additional process occurring at the first pass of step 26, is apre-screening process, wherein once the sum of full period crossovers,beginning at an initial crossover location, equals or first exceeds thenominal length, the length of that summation of full period crossoversis compared with the block length of the initial data block input atstep 12. If it is determined that the length of the summed full periodcrossovers will not fit within the original data block, the summed fullperiod crossover length is discarded, and a correlation is not computedfor this data. In other words, at this pre-screening step, a check ismade to determine whether the data to be correlated fits within thegeometrical constraints posed by the length of the current data block.

Additionally, in accordance with further principles of the presentinvention, at the same time that a pass is occurring to sum up the fullperiod crossovers, each full period crossover subsegment is checked todetermine if it satisfies a centrality condition. A centrality conditionis that condition where the signal crossover intermediate the outercrossovers defining the full period crossover is located at the center(e.g., halfway) of the full period crossover. If every full periodcrossover of the additive sum has this centrality condition, then theaudio data block will comprise and be classified by the processor as apure tone overlap.

In accordance with the principles of the present invention, completeaccuracy for determining centrality is not required. Rather, when theinteger multiple overlap satisfies the constraint that all crossoversbetween the full period crossover satisfy centrality to withinone-eighth of the crossover period, the overlap is termed a pure toneoverlap. Otherwise, the integer multiple of crossover periods notsatisfying the centrality condition are termed chord overlaps. As aresult, three overlap lengths may be available: pure tone overlaplengths, chord overlap lengths, and the nominal overlap length.

At step 28, the logic of the present invention determines whether a puretone condition exists. As discussed, a pure tone condition is presentwhere the centrality condition for the block is satisfied. In otherwords, where each full period crossover (within a data block) has itscentral crossover point located at least substantially centrally betweenthe outer-most ends of the full period crossover, a pure tone conditionexists. As shown at step 30, when a pure tone condition exists, the puretone overlap length is selected for finding the best correlation matchat step 34. When, however, a pure tone condition does not exist asdetermined at step 28, the nominal overlap length is selected (at step32) for use in finding the best correlation matching point foroverlapping the data blocks.

The choice of normalized correlation utilized in accordance with thepresent invention is not strictly critical, although a normalizeddifference correlation is preferred over a normalized multiplicative ornormalized regressive correlation due to computational simplicity. Thepreferred normalized difference correlation utilized with the presentinvention has the following form: ##EQU1## where s is signal voltage andthe + sign is for companding contraction and the - sign for compandingexpansion. The max₋₋ voltage is the absolute local maximum voltage overthe correlation samples. Since it varies from overlap to overlap, itmakes the correlation result more accurate than if max₋₋ voltage were afixed constant. Since this correlation varies from -1 to 1, we need onlyselect maximum positive correlation to avoid the 180 degree phase errorof anticorrelation. Normalized correlation has several advantages,anticorrelation discrimination being one and another being an absolutemeasure of relative correlation performance.

At step 36, a second pass over the stored crossovers is made.Particularly, during the second pass, for each crossover startinglocation, a process similar to that which occurred in the first pass isconducted wherein, however, only chord overlaps (if any) are selected.In other words, during the second pass at step 36, full periodcrossovers, starting at each crossover starting location, are summed,stopping when the sum first exceeds the nominal length. However, unlikethe first pass, in which pure tones were selected for computingnormalized correlations if present and, if not, the nominal overlaplength was selected, in the second pass only the length of chordoverlaps (if any) are utilized in computing the normalized differencecorrelation. It will be appreciated that it is not necessary to conductan actual second pass for summing purposes. Although re-summing may bedone, a determination of whether a block contains pure tone or chordoverlaps has already been made at the first pass step. Thus, at secondpass step 36, normalized correlations can simply be computed for eachchord overlap.

Next, at step 38, the best correlation match is found. In other words,at step 38, it is determined whether any chord overlaps produce a bettermatching point (e.g., the greatest positive correlation) than did thecorrelations resulting from the first pass. Particularly, since thenormalized difference correlation utilized in accordance with thepresent invention varies from -1 to +1, the maximum positive correlationneed only be selected to avoid 180° phase error of anti-correlation. Inthis way, normalized correlation has several advantages includinganticorrelation discrimination and the advantage that an absolutemeasure of relative correlation performance is provided.

At step 40, it is determined whether a match has been made. In thisregard, it is possible that the results of the first pass and the secondpass produced no matches. When, at step 40, a correlation match ispresent, then both the length of the overlap and the point at which theoverlap will be matched with the original data block are now known.Accordingly, at step 42, the overlap is computed. When, however, at step40 no correlation match was found, then the nominal length, computedoriginally at step 16, is decremented by a selected amount at step 44.Preferably, the original nominal length is decremented by 20%.

At step 46, it is determined whether after decrementing the originalnominal length, any nominal length is left. When the nominal length hasnot been decremented to zero, thereby meaning that, despite thedecrement, some value is left, the logic of the present inventionreturns to the first pass step 26 and the logic of steps 26-40 arerepeated. When, at step 40, still no match is found, the originalnominal length is decremented by an additional 20%, and the processrepeated. In this way, preferred principles of the present inventionutilize a process wherein a loop will be made a maximum of five times inlooking for a match--namely, 100% of the nominal length, 80% thereof,60% thereof, 40% thereof, and 20% thereof. It will be readilyappreciated that the nominal length may be decremented by any selectedamount at step 44.

As stated, the overlap is computed at step 42, when a match was found atstep 40. Additionally, at step 18 (discussed above), when it isinitially determined that no crossovers existed within the current datablock, then the nominal length computed at step 16 serves as the lengthof the overlap and the location of the overlap may be arbitrarily set.In accordance with the preferred principles of the present invention, insuch a case, the overlap is located at the center of the block, asindicated at step 20. From step 20, the overlap is then computed at step42. Computation of the overlap is discussed below in detail.

Once the overlap is computed at step 42, any overage is recorded andstored in memory at step 48. At step 50, it is determined whether theoverage recorded at step 48 is greater than or equal to the nominaloverlap length originally computed at step 16. When the overage isindeed greater or equal to the nominal length, then the current block isoutput uncompanded, as indicated at step 52. Also, when no bestcorrelation match is found at step 40, and the nominal length had beendecremented at step 44, any underage (e.g., that amount which is lessthan the nominal length) is recorded at step 54 and the current block isoutput uncompanded, at step 52. When a block is output without beingcompanded, any overage, as having been re-corded at step 48, isautomatically decremented, as indicated at step 56. From step 56, thelogic proceeds to step 58, wherein the question is asked whether thereare more data blocks for processing. When more data blocks exist, thesequence of the present invention returns to step 12, and the process isundertaken for the next data block. When, alternatively, no more blocksare present for processing, as determined at step 58, the compandingmethod of the present invention stops, as indicated at step 60.

Returning to step 50, when the overage recorded at step 48 is notgreater than or equal to the original nominal overlap length computed atstep 16, then the method of the present invention outputs an alteredplay time block, as indicated at step 62. In other words, the play timeof the current data block is output in a companded form (e.g., eitherexpanded or compressed). From step 62, the process proceeds to step 58,wherein it is determined whether more blocks are available forprocessing. When more blocks are available for processing, then theprocess returns to step 12 and a new current data block is input, andthe companding method is repeated for the new current data block. When,alternatively, it is determined at step 58 that no more blocks arepresent for processing, then companding for the selected audio iscompleted, and the processing stops, as indicated by step 60.

FIG. 2 illustrates the cross-faded overlap computation for both cases ofcontraction of the play time of the audio signal being processed andexpansion of the play time of the audio signal. In both cases, a blockof signal representations extending from zero to BUF-1 (length BUF) ispartially superimposed (the overlap) with a time shifted copy of theoriginal block. This forms three distinct, contiguous output segments oftotal length either smaller or greater than the length BUF, dependingupon whether contraction or expansion (respectively) is occurring. Thepoint "p" is a point on an array, and particularly, comprises thelocated signal crossover location having associated therewith thehighest normalized correlation computation. The reference to "o" is theoverlap. The overlap in each case, whether contraction or expansion, issummarized by the following equation:

    overlap=fade * s(n)+(1-fade) * s(n+/-overlap)

where the "+" sign is for contraction and the "-" sign is for expansion.The linear ramp fade is applied from 1 to 0 in the unshifted data blockand from 0 to 1 in the time shifted copy.

More specifically, where the following definitions apply:

    ______________________________________                                        buf.sub.-- in 0 to BUF-1! = original bloak audio data                         buf.sub.-- out  ! = output (companded) block audio data                       BUF = number of samples in the block                                          p = starting point for the overlap within buf.sub.-- in                       o = length of the overlap                                                     beta = 1/(p - (p + o))                                                        alpha = -beta*(p + o)                                                         ______________________________________                                    

The three output block regions are as follows:

    ______________________________________                                        region 1: pre-overlap                                                         for (n = 0 to p - 1) {buf.sub.-- out n! = buf.sub.-- in n!}                   for both expansion and contraction                                            region 2: overlap                                                             for (n = p to p + o) {fade = alpha + beta*n                                   buf.sub.-- out n! = fade*buf.sub.-- in n! + (1-fade)*buf.sub.-- in n +        -o!}                                                                          + sign for contraction, - sign for expansion in n + -o                        region 3: post-overlap                                                        contraction:                                                                  for(n = p + o + 1 to BUF-o-1) {buf.sub.-- out n! = buf.sub.-- in n + o!}      expansion:                                                                    for(n = p + 1 to BUF-1) {buf.sub.-- out n + o! = buf.sub.-- in n!}            ______________________________________                                    

FIG. 3 illustrates the hardware associated with the present invention.An audio recorder 70 is coupled with a digitizer 72. The digitizer 72 iscoupled with a storage unit 74, which is in turn coupled with a signalprocessor 76. Signal processor 76 is coupled with a second storage unit78. Signal processor 76 is also connected with a digital-to-analogconverter 80. Digital-to-analog converter 80 is coupled with a secondaudio recorder 82. Signal processor 76, as shown, also has an inputdevice (such as a keyboard) 84 and a display 86. Conventional hardwarewill be readily appreciated by those skilled in the art, and maycomprise variations without departing from the spirit of this invention.

An audio signal, including speech or music, or both, is recorded byaudio recorder 70. Audio recorder 70 outputs the recorded audio signalto digitizer 72, which converts the audio signal into a stream ofdigital signal representations. Digitizer 72 outputs the digitized audiosignal to storage unit 74. Processor 76 receives the digital audiosignal and performs various steps, as more particularly described abovein connection with FIGS. 1 and 2. Particularly, after signal processor76 divides the digital signal into data blocks, signal processor 76determines the location of signal crossovers within each data block.Storage unit 78 is utilized for storing the array of crossovers for eachsignal block. Display device 86 may be utilized to monitor data flow andinput/output information, while input device 84 may be utilized forinputting desired commands or information.

For instance, once the play time of the audio signal to be processed isdetermined, which may be determined either manually or automatically bysignal processor 76, input device 84 may be utilized for inputting adesired play time. Once signal processor 76 has processed each datablock of the stream of signal representations comprising the audiosignal to be processed, signal processor 76 outputs an altered audiosignal to digital-to-analog converter 80. It will by now bewell-appreciated that the altered signal has a play time different fromthe original audio signal to be processed. At digital-to-analogconverter 80, the altered digital audio signal is converted to an analogsignal. The analog signal is recorded by audio recorder 82.

The present invention performs extremely well for companding speechaudio, musical audio, and combinations of the two. The output results ofthe present invention, when properly utilized, are essentially free ofall noise, distortion, and audible artifacts, and are suitable forevaluation by the demanding commercial broadcast marketplace.

From the foregoing it will be seen that this invention is one welladapted to attain all ends and objects hereinabove set forth togetherwith the other advantages which are obvious and which are inherent tothe structure.

It will be understood that certain features and subcombinations are ofutility and may be employed without reference to other features andsubcombinations. This is contemplated by and is within the scope of theclaims.

Since many possible embodiments may be made of the invention withoutdeparting from the scope thereof, it is to be understood that all matterherein set forth or shown in the accompanying drawings is to beinterpreted as illustrative, and not in a limiting sense.

What is claimed is:
 1. A method for modifying the play time of a digitalaudio signal to a desired play time, said digital audio signal comprisedof data represented by a stream of integers, the data having crossoverpoints and full period crossover lengths defined as a length betweensuccessive crossover points having identical signal transition polarity,said method comprising:obtaining from said digital audio signal a blockof data comprised of at least a portion of said digital audio signal,said block thereby including data represented by a portion of saidstream of integers; searching for and locating each existing crossoverpoints within said data block, at which successive integers thereinchange signs; determining a position, based upon the results of saidsearching for crossovers and said crossover locations, at which tosuperimpose a copy of at least a portion of said data block with saiddata block including using a correlation determined by a normalizedcorrelation computation; determining the length of said data block copyto be superimposed based upon the results of said searching includingcomputing a nominal length for said data block copy, wherein saidnominal length is determined by the length of said data block, said playtime, and said desired play time, using the correlation determined bythe normalized correlation computation, and repeatedly summing the fullperiod crossover lengths starting at each said crossover point andcontinuing until a length of a sum of said crossover lengths, at aminimum, equals said computed nominal length, whereby the repeated stepof summing, starting at each said crossover point, produces a pluralityof said sums of said crossover lengths; superimposing a copy of at leasta portion of said data block with said data block; and altering, as aresult of the superposition, the play time of said data block andtherefore altering the play time of said audio signal.
 2. The method asset forth in claim 1, wherein each said full period crossover length hasan intermediate crossover point with a signal transition polarityopposite the signal transition polarity of the crossover points definingthe full period crossover, said step of determining said data block copylength further comprising determining whether each said full periodcrossover satisfies a selected centrality condition, wherein saidcentrality condition of each said full period crossover is determined bythe location of its intermediate crossover.
 3. The method as set forthin claim 2 wherein said step of determining whether each said fullperiod crossover satisfies a selected centrality condition furthercomprises classifying each said sum of said crossover lengths as anoverlap of a first type when said selected centrality condition is metfor each full period crossover of the sum of said crossover lengths and,otherwise, classifying each said sum of said crossover lengths as anoverlap of a second type.
 4. The method as set forth in claim 3 furthercomprising the step of computing said normalized correlation using eachsaid overlap of said first type when said selected centrality conditionis met for each full period crossover of the sum of said crossoverlengths.
 5. The method as set forth in claim 4 further comprising thestep of computing said normalized correlation using said nominal lengthwhen said selected centrality condition is not met for each full periodcrossover of the sum of said crossover length.
 6. The method as setforth in claim 5 further comprising the step of computing saidnormalized correlation using each said overlap of said second type. 7.The method as set forth in claim 6 wherein said steps of determining aposition at which to superimpose a copy of at least a portion of saiddata block with said data block and determining the length of said datablock copy includes using a maximum positive correlation, said maximumpositive correlation determined by said normalized correlationcomputation.
 8. The method as set forth in claim 7 further comprisingthe steps of decrementing said nominal length to a decremented lengthand computing another normalized correlation in association with thedecremented nominal length when the maximum positive correlation is notfound.
 9. The method as set forth in claim 2 further comprisingdetermining whether said intermediate crossover is spaced less than 1/8of the length of the full period crossover from a center of the fullperiod crossover.
 10. The method as set forth in claim 1 furthercomprising the step of selecting the center of said data block, as theposition at which to superimpose said data block copy, when no crossoverpoints exist in said data block.
 11. The method as set forth in claim 1wherein the step of determining a position at which to superimpose acopy of at least a portion of said data block with said data blockfurther comprises computing said superposition over the data block copyby application of a weighting function.
 12. A method for modifying theplay time of an audio signal to a desired play time, said audio signalcomprised of a stream of signal representations, said methodcomprising:overlapping a block of said signal representations with acopy of at least a portion of said block, the overlapping being afunction of said desired play time and including computing a normalizedcorrelation; determining the location of signal polarity crossoverswithin said block; determining a position within said block for theoverlapping, where said position is determined by the results ofdetermining the location of signal polarity crossovers within saidblock; selecting a length of an overlap to be a length equal to a summedlength of full period crossover lengths within said block, wherein fullperiod crossover lengths are defined as a length between successive saidsignal polarity crossovers having the same signal transition polarity,determining if the summed length has a maximum said normalizedcorrelation associated therewith; and setting a nominal length to be theselected length of the overlap when said summed length has a maximumsaid normalized correlation associated therewith.
 13. The method as setforth in claim 12 wherein said overlapping step further comprisesapplying a weighting function to said block of signal representationsand to said block copy.
 14. The method as set forth in claim 12 whereinsaid step of determining a position within said block for the overlapincludes constraining said position to one signal polarity crossoverwithin the block.
 15. A method of modifying the play time of an audiosignal to a desired play time, said audio signal comprised of a streamof samples, said method comprising:providing a block of said samples ofsaid audio signal; locating positions within said block at which saidaudio signal has polarity crossovers; computing a normalized correlationin association with selected said located polarity crossovers includingcomputing a first normalized correlation for a nominal overlap lengthwhen a pure tone condition is not satisfied, where said nominal overlaplength is determined by the length of said block and said desired playtime, and computing a second normalized correlation for at least onechord overlap length when the pure tone condition is not satisfied,where said chord overlap length comprises a sum of full periodcrossovers, where full period crossovers are defined by successivepolarity crossovers having the same signal transition; and overlapping acopy of at least a portion of said block with said block, saidoverlapping being a function of said desired play time and beingdetermined by said normalized correlation computations.
 16. The methodas set forth in claim 15 wherein said computing step comprises the stepsof:computing normalized correlations for at least one pure tone overlaplength when the pure tone condition is satisfied, where said pure toneoverlap length comprises a sum of full period crossovers, where fullperiod crossovers are defined by successive polarity crossovers havingthe same signal transition.
 17. The method as set forth in claim 15wherein said overlapping step further comprises selecting a maximumpositive normalized correlation.
 18. The method as set forth in claim 17wherein said overlapping step further comprises applying a weightingfunction to said block and said block copy.
 19. The method as set forthin claim 17 comprising the steps of:outputting said block in unalteredform when no said maximum positive normalized correlation is found;providing a next block of said samples of said audio signal; andincreasing said nominal length by a selected amount.
 20. The method asset forth in claim 15 comprising the steps of:monitoring for an overagewhich is greater than said nominal length; and outputting said block inunaltered form when said overage is greater than said nominal length.21. An apparatus for modifying the play time of an audio signal to adesired play time, said audio signal comprised of a stream of samples,said stream of samples exhibiting signal polarity crossovers, saidapparatus comprising:a processor for receiving said audio signal,dividing said audio signal into blocks of said samples, searching forand locating said signal polarity crossovers in each said block ofsamples, and selectively overlapping each of a plurality of said blockswith at least a partial copy of said each block, to thereby alter saidaudio signal to said desired play time, wherein said overlap in eachblock having an overlap is determined by a signal polarity crossoverwithin said block; and the processor including means for summing fullperiod crossovers within said block, starting at each said signalpolarity crossover within said block, where full period crossovers aredefined by successive signal polarity crossovers having the same signaltransition polarity.
 22. The apparatus as set forth in claim 21, saidprocessor further comprising means for computing a normalizedcorrelation, wherein said summing means produces a sum, said computingmeans computes the normalized correlation for said sum.
 23. Theapparatus as set forth in claim 22 wherein said processor utilizes saidnormalized correlation for determining said overlap.
 24. The apparatusas set forth in claim 21 further comprising:an first audio recorder forrecording audio; and a digitizer, coupled with said audio recorder, fordigitizing audio recorded by said audio recorder into a digital audiosignal, wherein said processor receives said digital audio signal. 25.The apparatus as set forth in claim 24, wherein said processor has meansfor outputting said altered signal, said apparatus further comprising:adigital to analog convertor, coupled with said processor, for receivingsaid altered digital signal and converts said digital signal to ananalogue signal; and a second audio recorder, coupled with saidconvertor, for recording said analogue audio signal.
 26. A method formodifying the play time of a digital audio signal to a desired playtime, said digital audio signal comprised of data represented by astream of integers, the data having crossover points and full periodcrossover lengths defined as a length between successive crossoverpoints having identical signal transition polarity, said methodcomprising:obtaining from said digital audio signal a block of datacomprised of at least a portion of said digital audio signal, said blockthereby including data represented by a portion of said stream ofintegers; searching for and locating each existing crossover pointswithin said data block, at which successive integers therein changesigns; determining a position, based upon the results of said searchingfor crossovers and said crossover locations, at which to superimpose acopy of at least a portion of said data block with said data blockincluding using a correlation determined by a normalized correlationcomputation; determining the length of said data block copy to besuperimposed based upon the results of said searching, includingcomputing a nominal length for said data block copy, wherein saidnominal length is determined by the length of said data block, said playtime, and said desired play time; superimposing a copy of at least aportion of said data block with said data block; altering, as a resultof the superposition, the play time of said data block and thereforealtering the play time of said audio signal; and selecting the center ofsaid data block, as the position at which to superimpose said data blockcopy, when no crossover points exist in said data block.